﻿Public Class frmLop
    Sub LoadDanhSach()
        Dim dt As DataTable
        dt = LopDAO.SelectAll()
        dgvLop.DataSource = dt
    End Sub
    Sub Them()
        Dim lop As LopDTO = New LopDTO()
        lop.MaLop = txtMaLop.Text
        lop.TenLop = txtTenLop.Text
        lop.TenKhoa = cmbKhoa.Text
        lop.ChuyenNganh = cmbNganh.Text
        lop.TenHe = cmbHe.Text
        lop.SiSo = txtSoSV.Text
        lop.NienKhoa = txtNienKhoa.Text
        LopDAO.Insert(lop)
        LoadDanhSach()
    End Sub
    Sub Xoa()
        Dim lop As LopDTO = New LopDTO()
        lop.MaLop = txtMaLop.Text
        LopDAO.Delete(lop)
        LoadDanhSach()
    End Sub
    Sub Sua()
        Dim lop As LopDTO = New LopDTO()
        lop.MaLop = txtMaLop.Text
        lop.TenLop = txtTenLop.Text
        lop.TenKhoa = cmbKhoa.Text
        lop.ChuyenNganh = cmbNganh.Text
        lop.TenHe = cmbHe.Text
        lop.SiSo = txtSoSV.Text
        lop.NienKhoa = txtNienKhoa.Text
        LopDAO.Update(lop)
        LoadDanhSach()
    End Sub
    Sub Tim()
        Dim lop As LopDTO = New LopDTO()
        lop.MaLop = txtMaLop.Text
        lop.TenLop = txtTenLop.Text
        lop.TenKhoa = cmbKhoa.Text
        lop.ChuyenNganh = cmbNganh.Text
        lop.TenHe = cmbHe.Text
        ' lop.SiSo = txtSoSV.
        lop.NienKhoa = txtNienKhoa.Text
        dgvLop.DataSource = LopDAO.SelectByLop(lop)
    End Sub
    Sub Clear()
        txtMaLop.Text = ""
        txtTenLop.Text = ""
        txtNienKhoa.Text = ""
        txtSoSV.Text = ""
        cmbHe.Text = ""
        cmbKhoa.Text = ""
        cmbNganh.Text = ""
        txtMaLop.Focus()

    End Sub
    Private Function CheckDataInput() As Boolean
        If txtMaLop.Text = "" Then
            MsgBox("Bạn hãy nhập mã lớp, không để rỗng !", MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "Thông báo")
            txtMaLop.Focus()
            Return False
        ElseIf txtTenLop.Text = "" Or IsNumeric(txtTenLop.Text) Then
            MsgBox("Bạn nhập tên lớp không hợp lệ !", MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "Thông báo")
            txtTenLop.Text = ""
            txtTenLop.Focus()
            Return False
        ElseIf cmbKhoa.Text = "" Then
            MsgBox("Bạn hãy chọn khoa, không để rỗng !", MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "Thông báo")
            cmbKhoa.Focus()
            Return False
        ElseIf cmbNganh.Text = "" Then
            MsgBox("Bạn hãy chọn ngành, không để rỗng !", MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "Thông báo")
            cmbNganh.Focus()
            Return False
        ElseIf cmbHe.Text = "" Then
            MsgBox("Bạn hãy chọn hệ, không để rỗng !", MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "Thông báo")
            cmbHe.Focus()
            Return False
        ElseIf txtSoSV.Text = "" Then
            MsgBox("Bạn hãy nhập số sinh viên, không để rỗng !", MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "Thông báo")
            txtSoSV.Focus()
            Return False
        ElseIf txtNienKhoa.Text = "" Then
            MsgBox("Bạn nhập niên khóa không hợp lệ !", MsgBoxStyle.Critical + MsgBoxStyle.OkOnly, "Thông báo")
            txtTenLop.Focus()
            Return False
        End If
        Return True
    End Function
    Sub HienThi()
        If (dgvLop.SelectedRows.Count > 0) Then
            txtMaLop.Text = dgvLop.SelectedRows(0).Cells(0).Value.ToString()
            txtTenLop.Text = dgvLop.SelectedRows(0).Cells(1).Value.ToString()
            cmbKhoa.Text = dgvLop.SelectedRows(0).Cells(2).Value.ToString()
            cmbNganh.Text = dgvLop.SelectedRows(0).Cells(3).Value.ToString()
            cmbHe.Text = dgvLop.SelectedRows(0).Cells(4).Value.ToString()
            txtSoSV.Text = dgvLop.SelectedRows(0).Cells(5).Value.ToString()
            txtNienKhoa.Text = dgvLop.SelectedRows(0).Cells(6).Value.ToString()
        End If
    End Sub
    Sub Hien_thi_khoa()
        Dim dt As New DataTable
        dt = KhoaDAO.SelectAll()
        cmbKhoa.DataSource = dt
        cmbKhoa.DisplayMember = "TenKhoa"
    End Sub
    Sub Hien_thi_nganh()
        Dim dt As New DataTable
        dt = NganhDAO.SelectAll()
        cmbNganh.DataSource = dt
        cmbNganh.DisplayMember = "ChuyenNganh"
    End Sub
    Sub Hien_thi_he()
        Dim dt As New DataTable
        dt = HeDAO.SelectAll()
        cmbHe.DataSource = dt
        cmbHe.DisplayMember = "TenHe"
    End Sub

    Private Sub btnThem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnThem.Click
        Dim dt As New DataTable
        dt = LopDAO.SelectAll
        Dim tam As Integer = 0
        Dim tam1 As Integer = 0
        Dim i As Integer = 0
        While i <= dt.Rows.Count - 1
            If dt.Rows(i)("Malop") = txtMaLop.Text Then
                tam += 1
                i += 1
            ElseIf dt.Rows(i)("Tenlop") = txtTenLop.Text Then
                tam1 += 1
                i += 1
            Else
                i += 1
            End If
        End While
        If tam > 0 Then
            MsgBox("Không được nhập trùng Mã Lớp ! Vui lòng nhập lại !")
            txtMaLop.Text = ""
            txtMaLop.Focus()
        ElseIf tam1 > 0 Then
            MsgBox("Không được nhập trùng Tên Lớp ! Vui lòng nhập lại !")
            txtTenLop.Text = ""
            txtTenLop.Focus()
        Else
            If CheckDataInput() = True Then
                Them()
                Clear()
            End If
        End If
    End Sub

    Private Sub btnxoa_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnXoa.Click
        If dgvLop.SelectedRows.Count = 0 Then
            MessageBox.Show("Hãy chọn dữ liệu cần xóa !")
        End If
        If dgvLop.SelectedRows.Count > 0 Then
            If MsgBox("Bạn có thật muốn xóa !", MsgBoxStyle.Question + MsgBoxStyle.YesNo, "Thông báo") = MsgBoxResult.Yes Then
                Xoa()
                LoadDanhSach()
                Clear()
            Else
                Exit Sub
            End If
        Else
            MsgBox("Chọn mẫu tin cần xoá !", MsgBoxStyle.Question + MsgBoxStyle.OkOnly, "Thông báo")
        End If
    End Sub

    Private Sub btnSua_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSua.Click
        Try
            If CheckDataInput() = True Then
                Sua()
                Clear()
            End If
        Catch ex As Exception
            ' MessageBox.Show(ex.Message, "Lỗi xử lý !", MessageBoxButtons.OK, MessageBoxIcon.[Error])
        End Try
    End Sub

    Private Sub btnClear_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClear.Click
        Clear()

    End Sub

    Private Sub btntim_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTim.Click
        Tim()
    End Sub

    Private Sub txtSoSV_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtSoSV.KeyPress
        'Buộc nhập số
        If (Not Char.IsNumber(e.KeyChar) And _
        Not Char.IsControl(e.KeyChar)) Then
            e.Handled = True
        End If
    End Sub

    'Private Sub txtNienKhoa_KeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtNienKhoa.KeyPress
    'Buộc nhập số
    ' If (Not Char.IsNumber(e.KeyChar) And _
    ' Not Char.IsControl(e.KeyChar)) Then
    '    e.Handled = True
    '  End If
    ' End Sub

    Private Sub btnThoat_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnThoat.Click
        Me.Close()
    End Sub

    Private Sub frmLop_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        txtMaLop.Focus()
        Hien_thi_khoa()
        Hien_thi_he()
        Hien_thi_nganh()
        LoadDanhSach()

    End Sub

    Private Sub dgvLop_SelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles dgvLop.SelectionChanged
        HienThi()
    End Sub

    Private Sub btnIn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnIn.Click
        Dim f As New frmBaoCaoLop
        f.Show()
    End Sub

    Private Sub txtSoSV_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtSoSV.TextChanged

    End Sub
End Class